//
// Created by Administrator on 2023/9/1.
//

#ifndef F103VET6_U8G2_OLED_H
#define F103VET6_U8G2_OLED_H

#include <stdbool.h>
#include "main.h"
#include "stm32f1xx_hal_gpio.h"

#if 0

    #define OLED_CLK_Clr() HAL_GPIO_WritePin(OLED_SCL_GPIO_Port, OLED_SCL_Pin, GPIO_PIN_RESET) //SCL(D1)
    #define OLED_CLK_Set() HAL_GPIO_WritePin(OLED_SCL_GPIO_Port, OLED_SCL_Pin, GPIO_PIN_SET)

    #define OLED_SDA_Clr() HAL_GPIO_WritePin(OLED_SDA_GPIO_Port, OLED_SDA_Pin, GPIO_PIN_RESET)//DIN(D0)
    #define OLED_SDA_Set() HAL_GPIO_WritePin(OLED_SDA_GPIO_Port, OLED_SDA_Pin, GPIO_PIN_SET)

    #define OLED_RST_Clr() HAL_GPIO_WritePin(OLED_RES_GPIO_Port, OLED_RES_Pin, GPIO_PIN_RESET) //RES
    #define OLED_RST_Set() HAL_GPIO_WritePin(OLED_RES_GPIO_Port, OLED_RES_Pin, GPIO_PIN_SET)

    #define OLED_DC_Clr() HAL_GPIO_WritePin(OLED_DC_GPIO_Port, OLED_DC_Pin, GPIO_PIN_RESET) //DC
    #define OLED_DC_Set() HAL_GPIO_WritePin(OLED_DC_GPIO_Port, OLED_DC_Pin, GPIO_PIN_SET)

    #define OLED_CS_Clr() HAL_GPIO_WritePin(OLED_CS_GPIO_Port, OLED_CS_Pin, GPIO_PIN_RESET) //CS
    #define OLED_CS_Set() HAL_GPIO_WritePin(OLED_CS_GPIO_Port, OLED_CS_Pin, GPIO_PIN_SET)

#else

    #define OLED_CLK_Clr() OLED_SCL_GPIO_Port->BSRR = (uint32_t)OLED_SCL_Pin << 16u //SCL(D1)
    #define OLED_CLK_Set() OLED_SCL_GPIO_Port->BSRR = OLED_SCL_Pin

    #define OLED_SDA_Clr() OLED_SDA_GPIO_Port->BSRR = (uint32_t)OLED_SDA_Pin << 16u //DIN(D0)
    #define OLED_SDA_Set() OLED_SDA_GPIO_Port->BSRR = OLED_SDA_Pin

    #define OLED_RST_Clr() OLED_RES_GPIO_Port->BSRR = (uint32_t)OLED_RES_Pin << 16u //RES
    #define OLED_RST_Set() OLED_RES_GPIO_Port->BSRR = OLED_RES_Pin

    #define OLED_DC_Clr() OLED_DC_GPIO_Port->BSRR = (uint32_t)OLED_DC_Pin << 16u //DC
    #define OLED_DC_Set() OLED_DC_GPIO_Port->BSRR = OLED_DC_Pin

    #define OLED_CS_Clr() OLED_CS_GPIO_Port->BSRR = (uint32_t)OLED_CS_Pin << 16u //CS
    #define OLED_CS_Set() OLED_CS_GPIO_Port->BSRR = OLED_CS_Pin

#endif


void U8G2_Init(void);
bool ui_show(uint16_t key);
void ui_test(uint16_t key);

#endif //F103VET6_U8G2_OLED_H
